﻿<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" EnableEventValidation="false" AutoEventWireup="true" CodeFile="FormularioProceso.aspx.cs" Inherits="Servicios_Proceso_FormularioProceso" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div class="ui-widget-content ui-corner-all" id="marcoForm">
        <h3 id="titulo" class="ui-widget-header ui-corner-all">Administracion de Servicios: Procesos</h3>
        <div id="content" style="overflow:hidden;">
            <div id="desc_form">
                Formulario para crear o modificar Procesos registrados en el sistema.
            </div>
            <iudicium:Notify ID="ControlNotificacion" runat="server" />
            <div id="camposForm" class="validationGroup" style="width: 600px; float: left">
                <asp:Panel ID="CodigoProcesoPanel" runat="server" CssClass="field">
                    <div class="label">
                        <asp:Label ID="CodigoProcesoLabel" runat="server" Text="Codigo"></asp:Label>
                        <asp:Label ID="CodigoProcesoErrorLabel" runat="server"
                            CssClass="mensajes">
                        </asp:Label>
                    </div>
                    <asp:Label ID="CodigoProcesoDescriptionLabel" runat="server"
                        Text="">
                    </asp:Label>
                </asp:Panel>
                <div class="field">
                <div class="label">
                    <asp:Label ID="NumeroExpedienteLabel" runat="server"
                        Text="Numero de Expediente"></asp:Label>
                </div>
                <asp:TextBox ID="NumeroExpedienteTextBox" runat="server"
                    CssClass="normalField">
                </asp:TextBox>
            </div>
                <div class="field">
                <div class="label">
                    <asp:Label ID="MontoDemandaLabel" runat="server"
                        Text="Monto Demanda"></asp:Label>
                </div>
                <asp:TextBox ID="MontoDemandaTextBox" runat="server"
                    CssClass="normalField">
                </asp:TextBox>
            </div>      
                <div class="field">
                    <div class="label">
                        <asp:Label ID="TipoLabel" runat="server" Text="Tipo Proceso"
                            AssociatedControlID="TipoDropDownList"></asp:Label>
                        <asp:Label ID="TipoLabelErrorMessage" runat="server"
                            CssClass="mensajes">
                        </asp:Label>
                    </div>
                    <asp:DropDownList ID="TipoDropDownList" runat="server"
                        CssClass="normalField"
                        DataSourceID="TipoObjectDataSource"
                        DataTextField="Descripcion"
                        DataValueField="TipoProcesoId" 
                        OnDataBound="TipoDropDownList_DataBound">
                    </asp:DropDownList>
                    <asp:ObjectDataSource ID="TipoObjectDataSource" runat="server"
                         TypeName="Iudicium.Procesos.CRN.TipoProcesoCRN"
                         SelectMethod="GetTipoProcesoBySearch">
                        <SelectParameters>
                            <asp:Parameter Name="parametro" DefaultValue="" Type="String" />
                        </SelectParameters>
                    </asp:ObjectDataSource>
                    <asp:Literal ID="TipoLiteral" runat="server" Visible="false"></asp:Literal>
               </div>
                <div class="field">
                    <div class="label">
                        <asp:Label ID="EtapaProcesoLabel" runat="server" Text="Etapa Proceso"
                            AssociatedControlID="EtapaProcesoDropDownList"></asp:Label>
                        <asp:Label ID="EtapaProcesoLabelErrorMessage" runat="server"
                            CssClass="mensajes">
                        </asp:Label>
                    </div>
                    <asp:DropDownList ID="EtapaProcesoDropDownList" runat="server"
                        CssClass="normalField"
                        DataSourceID="EtapaProcesoObjectDataSource"
                        DataTextField="Descripcion"
                        DataValueField="EtapaProcesoId" 
                        OnDataBound="EtapaProcesoDropDownList_DataBound">
                    </asp:DropDownList>
                    <asp:HiddenField ID="EtapaProcesoIdHiddenField" runat="server" />
                    <asp:Image ID="AjaxLoaderImage" runat="server"
                        ImageUrl="~/Images/ajax-loader.gif"
                        CssClass="hide" />
                    <asp:ObjectDataSource ID="EtapaProcesoObjectDataSource" runat="server"
                          TypeName="Iudicium.Procesos.CRN.EtapaProcesoCRN"
                          SelectMethod="GetEtapaProcesoBySearch">
                        <SelectParameters>
                            <asp:Parameter Name="parametro" DefaultValue="" Type="String" />
                            <asp:ControlParameter ControlID="TipoDropDownList" Type="String"
                                Name="TipoId" PropertyName="SelectedValue" />   
                        </SelectParameters>    
                    </asp:ObjectDataSource>
                    <asp:Literal ID="EtapaProcesoLiteral" runat="server" Visible="false"></asp:Literal>
                </div>
                <div class="field">
                    <div class="label">
                        <asp:Label ID="InvolucradosLabel" runat="server" Text="Clientes del Proceso"
                            AssociatedControlID="InvolucradosSelector"></asp:Label>
                        <asp:Label ID="InvolucradosErrorLabel" runat="server"
                            CssClass="mensajes">
                        </asp:Label>
                    </div>
                    <iudicium:SelectProcessInvolved ID="InvolucradosSelector" runat="server" />
                </div>
                <div class="field">
                    <div class="label">
                        <asp:Label ID="ResponsablesLabel" runat="server" Text="Responsables del Proceso"
                            AssociatedControlID="ResponsablesSelector"></asp:Label>
                        <asp:Label ID="ResponsablesErrorLabel" runat="server"
                            CssClass="mensajes">
                        </asp:Label>
                    </div>
                    <iudicium:SelectResponsibles ID="ResponsablesSelector" runat="server" />
                </div>
                <div class="field">
                    <div class="label">
                        <asp:Label ID="FechaInicioLabel" runat="server" Text="Fecha de Inicio"
                            AssociatedControlID="FechaInicioTextBox"></asp:Label>
                        <asp:Label ID="FechaInicioErrorLabel" runat="server"
                            CssClass="mensajes">
                        </asp:Label>
                    </div>
                    <asp:TextBox ID="FechaInicioTextBox" runat="server"
                        Text="">
                    </asp:TextBox>
                    <asp:Label ID="FechaInicioDescripcionLabel" runat="server" Visible="false"></asp:Label>
                </div>
                <div class="field">
                    <div class="label">
                        <asp:Label ID="FechaEntregaEstimadaLabel" runat="server" Text="Fecha de Entrega Estimada"
                            AssociatedControlID="FechaEntregaEstimadaTextBox"></asp:Label>
                        <asp:Label ID="FechaEntregaEstimadaErrorLabel" runat="server"
                            CssClass="mensajes">
                        </asp:Label>
                    </div>
                    <asp:TextBox ID="FechaEntregaEstimadaTextBox" runat="server"
                        Text="">
                    </asp:TextBox>
                    <asp:HiddenField ID="FechaEntregaEstimadaHiddenField" runat="server" />
                    <asp:Literal ID="FechaEntregaEstimadaLiteral" runat="server" Visible="false" />
                </div>
                <asp:Panel ID="FechaFinalizacionPanel" runat="server"
                    CssClass="field"
                    Visible="false">
                    <div class="label">
                       <span>Fecha de Finalizaci&oacute;n</span>
                    </div>
                    <asp:Literal ID="FechaFinLiteral" runat="server"></asp:Literal>
                </asp:Panel>
                <div class="field">
                    <div class="label">
                        <asp:Label ID="ObservacionLabel" runat="server" Text="Observacion"
                            AssociatedControlID="ObservacionTextBox"></asp:Label>
                        <asp:Label ID="ObservacionErrorLabel" runat="server"
                            CssClass="mensajes">
                        </asp:Label>
                    </div>
                    <asp:TextBox ID="ObservacionTextBox" runat="server"
                        TextMode="MultiLine"
                        CssClass="bigField"
                        Rows="5"
                        Text="">
                    </asp:TextBox>
                </div>
                <asp:Panel ID="DatosEntregaPanel" runat="server"
                    Visible="false">
                    <div class="field">
                        <div class="label">
                            <span>Fecha de Entrega</span>
                        </div>
                        <asp:Literal ID="FechaEntregaLiteral" runat="server"></asp:Literal>
                    </div>
                    <div class="field">
                        <div class="label">
                            <span>Entregado a</span>
                        </div>
                        <asp:Literal ID="EntregadoALiteral" runat="server"></asp:Literal>
                    </div>
                    <div class="field">
                        <div class="label">
                            <span>Observacion en la Entrega</span>
                        </div>
                        <asp:TextBox ID="DescripcionObservacionEntregaTextBox" runat="server"
                            CssClass="bigField"
                            TextMode="MultiLine"
                            ReadOnly="true"
                            Rows="3">
                        </asp:TextBox>
                    </div>
                </asp:Panel>
                <asp:Panel ID="EstadoPanel" runat="server" CssClass="field">
                    <div class="label">
                        <asp:Label ID="EstadoLabel" runat="server"
                            Text="Estado"></asp:Label>
                        <asp:Label ID="EstadoErrorLabel" runat="server"
                            CssClass="mensajes"></asp:Label>
                    </div>
                    <div>
                        <asp:Label ID="DescripcionEstadoLabel" runat="server"></asp:Label>
                     </div>
                </asp:Panel>         
                <div id="botonesForm">
                    <asp:LinkButton ID="GuardarLinkButton" runat="server"
                        Text="Guardar"
                        CssClass="button causesValidation"
                        OnClick="GuardarLinkButton_Click">
                    </asp:LinkButton>
                    <asp:LinkButton ID="FinalizarProcesoLinkButton" runat="server"
                        Text="Finalizar Proceso"
                        CssClass="button finalize causesValidation"
                        OnClick="FinalizarProcesoLinkButton_Click">
                    </asp:LinkButton>
                    <asp:HyperLink ID="EntregarProcesoHyperLink" runat="server"
                        NavigateUrl="#"
                        CssClass="button"
                        Text="Entregar Proceso">
                    </asp:HyperLink>
                    <asp:HyperLink ID="CancelarHyperlink" runat="server"
                        NavigateUrl="~/Servicios/Proceso/ListaProcesos.aspx"
                        CssClass="cancelOption"
                        Text="Cancelar">
                    </asp:HyperLink>
                </div>
            </div>

            <asp:Panel ID="OptionsPanel" runat="server"
                CssClass="ui-widget-content ui-corner-all"
                style="width: 200px;float:right;padding: 3px;">
                <h3 id="H1" class="ui-widget-header ui-corner-all">Opciones Adicionales</h3>
                <div style="text-align: left;padding: 10px;">
                    <%--- <a href="#">Imprimir ficha de Ingreso</a> <br />
                    - <a href="#">Reporte</a> <br />--%>
                    - 
                    <asp:LinkButton ID="TransaccionesLinkButton" runat="server"
                        Text="Transacciones"
                        OnClick="TransaccionesLinkButton_Click">
                    </asp:LinkButton> <br />
                    - 
                    <asp:LinkButton ID="ActividadesLinkButton" runat="server"
                        Text="Actividades"
                        OnClick="ActividadesLinkButton_Click">
                    </asp:LinkButton> <br />
                </div>
            </asp:Panel>
        </div>
    </div>
    
    <iudicium:ConfirmDialog ID="ConfirmacionFinalizacion" runat="server"
        Message="Esta seguro que desea finalizar el proceso?."
        ActionBeforeConfirm="UpdateDate()"
        ApplyToCssClass="finalize" />
    
    <asp:Panel ID="DialogConfirmPanel" runat="server"
        style="display:none;"
        ToolTip="Entrega de proceso">

        <div>
            <div class="field">
                <div class="label">
                    <asp:Label ID="FechaEntregaLabel" runat="server"
                        Text="Fecha Entrega"></asp:Label>
                </div>
                <asp:Label ID="DescripcionFechaEntregaLabel" runat="server"></asp:Label>
            </div>
            <div class="field">
                <div class="label">
                    <asp:Label ID="EntregadoALabel" runat="server"
                        Text="Entregado a"></asp:Label>
                </div>
                <asp:TextBox ID="EntregadoATextBox" runat="server"
                    CssClass="normalField">
                </asp:TextBox>
            </div>
            <div class="field">
                <div class="label">
                    <asp:Label ID="ObservacionEntregaLabel" runat="server"
                        Text="Observacion"></asp:Label>
                </div>
                <asp:TextBox ID="ObservacionEntregaTextBox" runat="server"
                    TextMode="MultiLine"
                    Rows="3"
                    CssClass="bigField">
                </asp:TextBox>
            </div>
            <div class="botonesForm">
                <asp:LinkButton ID="EntregarProcesoLinkButton" runat="server"
                    Text="Entregar"
                    CssClass="button"
                    OnClick="EntregarProcesoLinkButton_Click">
                </asp:LinkButton>
                <asp:HyperLink ID="CancelarEntregaHyperLink" runat="server"
                    Text="Cancelar entrega"
                    NavigateUrl="#"
                    CssClass="cancelOption">
                </asp:HyperLink>
            </div>
        </div>
    </asp:Panel>

    <asp:HiddenField ID="ProcesoIdHiddenField" runat="server" Value="0" />
    <asp:HiddenField ID="FechaFinalizacionHiddenField" runat="server" />

    <script type="text/javascript">

        function UpdateDate(){
            var date = new Date();
            var day = date.getDate();
            if(day < 10)
                day = "0" + day;
            var month = date.getMonth() + 1;
            if(month < 10)
                month = "0" + month;
            var year = date.getFullYear();
            $("#<%= FechaFinalizacionHiddenField.ClientID %>").val(year + "-" + month + "-" + day);
        }
        
        $(document).ready(function() {

            $(".hint").tipTip({ defaultPosition: 'right', activation: 'focus' });

            $("#<%= FechaInicioTextBox.ClientID %>").keypress(function(event) {
                return false;
            });

            $("#<%= DialogConfirmPanel.ClientID %>").dialog({
                resizable: false,
                height: 300,
                width: 450,
                modal: true,
                autoOpen: false
            });

            $("#<%= EntregarProcesoHyperLink.ClientID %>").click(function(){
                UpdateDate();
                $("#<%= DescripcionFechaEntregaLabel.ClientID %>").html($("#<%= FechaFinalizacionHiddenField.ClientID %>").val());
                $("#<%= DialogConfirmPanel.ClientID %>").dialog('open');
                return false;
            });

            $("#<%= CancelarEntregaHyperLink.ClientID %>").click(function(){
                $("#<%= DialogConfirmPanel.ClientID %>").dialog('close');
                return false;
            });

            $("#<%= EntregarProcesoLinkButton.ClientID %>").click(function(){
                $("#<%= DialogConfirmPanel.ClientID %>").dialog('close');
            });
            
            $("#<%= FechaInicioTextBox.ClientID %>").datepicker($.datepicker.regional['es']);
            $("#<%= FechaInicioTextBox.ClientID %>").datepicker('option',
            {
                dateFormat: 'yy-mm-dd',            
                changeMonth: true,
                changeYear: true,
                maxDate: <asp:Literal ID="MaxDateLiteral" runat="server" Text="new Date()" />,
                onSelect: function(dateText, inst) { 
                    $("#<%= FechaEntregaEstimadaTextBox.ClientID %>").datepicker("option", "minDate", 
                        $("#<%= FechaInicioTextBox.ClientID %>").datepicker("getDate"));
                }
            });

            $("#<%= FechaEntregaEstimadaTextBox.ClientID %>").keypress(function(event) {
                return false;
            });
            
            $("#<%= FechaEntregaEstimadaTextBox.ClientID %>").datepicker($.datepicker.regional['es']);
            $("#<%= FechaEntregaEstimadaTextBox.ClientID %>").datepicker('option',
            {
                dateFormat: 'yy-mm-dd',            
                changeMonth: true,
                changeYear: true,
                minDate: <asp:Literal ID="MinDateLiteral" runat="server" Text="new Date()" />
            });
            var date = <asp:Literal ID="SelectedDateLiteral" runat="server" Text="''" />;
            if(date && date != '')
                $("#<%= FechaEntregaEstimadaTextBox.ClientID %>").datepicker("setDate", date);
            
            $("#aspnetForm").validate({
                onsubmit: false,
                errorPlacement: function(error, element) {
                    error.appendTo(element.prev("div.label").children("span.mensajes")); //pone el mensaje de error en el label del field
                },
                rules: {
                    <%= TipoDropDownList.UniqueID %>: {
                        required: true
                    },
                    <%= EtapaProcesoDropDownList.UniqueID %>: {
                        required: true
                    },
                    <%= InvolucradosSelector.UniqueID %>: {
                        required: true
                    },
                    <%= ResponsablesSelector.UniqueID %>: {
                        required: true
                    },
                    <%= FechaInicioTextBox.UniqueID %>: {
                        date: true,
                        required: true
                    },
                     <%= FechaEntregaEstimadaTextBox.UniqueID %>: {
                        date: true,
                        required: true
                    },
                    <%= NumeroExpedienteTextBox.UniqueID %>: {
                        required: true
                    },
                    <%= MontoDemandaTextBox.UniqueID %>: {
                        required: true
                    },
                    <%= ObservacionTextBox.UniqueID %>: {
                        required: true
                    }
                },
                messages: {
                    <%= TipoDropDownList.UniqueID %>: {
                        required: " Debe seleccionar la Tipo" 
                    },
                    <%= EtapaProcesoDropDownList.UniqueID %>: {
                        required: " Debe seleccionar un Etapa de Proceso" 
                    },
                    <%= InvolucradosSelector.UniqueID %>: {
                        required: " Debe seleccionar al menos una persona como involucrado"
                    },
                    <%= ResponsablesSelector.UniqueID %>: {
                        required: " Debe seleccionar al menos una persona como responsable"
                    },
                    <%= FechaInicioTextBox.UniqueID %>: {
                        required: " Ingrese la Fecha de Inicio",
                        date: " El formato de fecha no es correcto. Debe ser con el formato (AAAA-MM-DD)"
                    },
                    <%= FechaEntregaEstimadaTextBox.UniqueID %>: {
                        required: " Ingrese la Fecha de Finalizacion",
                        date: " El formato de fecha no es correcto. Debe ser con el formato (AAAA-MM-DD)"
                    },
                    <%= ObservacionTextBox.UniqueID %>: {
                        required: " Ingrese la observacion del Proceso"
                    }
                }
            });
            $("#<%= FechaEntregaEstimadaTextBox.ClientID %>").datepicker("hide");

            $("#<%= TipoDropDownList.ClientID %>").change(function(){
                $("#<%= AjaxLoaderImage.ClientID %>").show();
                var id = $("#<%= TipoDropDownList.ClientID %>").val();
                if(id == ""){
                    $("#<%= EtapaProcesoDropDownList.ClientID %>").get(0).options.length = 0;
                    $("#<%= EtapaProcesoDropDownList.ClientID %>").get(0).options[0] = new Option("Seleccion un Tipo de Proceso", "-1");
                    return; 
                }

                $.ajax({
                    type: "POST",
                    url: "FormularioProceso.aspx/GetEtapaProcesos",
                    data: "{id:" + id + "}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function(msg) {
                        $("#<%= EtapaProcesoDropDownList.ClientID %>").get(0).options.length = 0;
                        $("#<%= EtapaProcesoDropDownList.ClientID %>").get(0).options[0] = new Option("Seleccion un Etapa de Proceso", ""); 
 
                        $.each(msg.d, function(index, item) {
                            $("#<%= EtapaProcesoDropDownList.ClientID %>").get(0).options[$("#<%= EtapaProcesoDropDownList.ClientID %>").get(0).options.length] = new Option(item.Descripcion, item.EtapaProcesoId);
                        });
                        $("#<%= AjaxLoaderImage.ClientID %>").hide();
                    },
                    error: function() {
                        $("#<%= EtapaProcesoDropDownList.ClientID %>").get(0).options.length = 0;
                        $("#<%= EtapaProcesoDropDownList.ClientID %>").get(0).options[0] = new Option("Seleccion una Tipo de Proceso", "");
                        $("#<%= AjaxLoaderImage.ClientID %>").hide();
                    }
                });

            });

            $("#<%= EtapaProcesoDropDownList.ClientID %>").change(function(){
                $("#<%= EtapaProcesoIdHiddenField.ClientID %>").val($("#<%= EtapaProcesoDropDownList.ClientID %>").val());
            });
            
            $("#<%= GuardarLinkButton.ClientID %>").click(function(){
                $("#<%= EtapaProcesoIdHiddenField.ClientID %>").val($("#<%= EtapaProcesoDropDownList.ClientID %>").val());
            });

        });
        
    </script>
</asp:Content>

